package entidades;

public class Documento implements java.io.Serializable, Comparable{
	
	/**
	 * id: identificador unico para cada objeto
	 * ubicacion: ubicacion en el disco duro, es su ruta de acceso. Ejemplo: C:/tuvieja/misdocumentos
	 * nombre: nombre del archivo. Ejemplo: Top Secret
	 * extension: extension del archivo.
	 * nroPalabras: cantidad de palabras que posee el documento
	 */
	private int id;
	private String ubicacion;
	private String nombre;
	private Extension extension;
	private int nroPalabras;
	
	// Constructores
	public Documento(){
		
	}
	
	public Documento(String ubicacion, String nombre, Extension extension) {
		this.ubicacion = ubicacion;
		this.nombre = nombre;
		this.extension = extension;
		nroPalabras = 0;
	}

	// Metodo Gets y Sets
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getUbicacion() {
		return ubicacion;
	}

	public void setUbicacion(String ubicacion) {
		this.ubicacion = ubicacion;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public Extension getExtension() {
		return extension;
	}

	public void setExtension(Extension extension) {
		this.extension = extension;
	}
	
	public int getNroPalabras() {
		return nroPalabras;
	}

	public void setNroPalabras(int nroPalabras) {
		this.nroPalabras = nroPalabras;
	}

	// Metodos CompareTo
	@Override
	public int compareTo(Object arg0) {
		Documento comparable = (Documento) arg0;
		if(ubicacion.compareTo(comparable.getUbicacion()) ==0 && nombre.compareTo(comparable.getNombre())==0 && extension.compareTo(comparable.getExtension())==0){
			return 0;
		}
		return 1;
	}
	
	public String toString(){
		return id+" "+ubicacion+nombre;
	}
}
